/**
 * Copyright 2008-2009 HAN.BIFANG
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */
package han.bifang.gwt.client.service.content;

import han.bifang.gwt.client.common.Content;
import han.bifang.gwt.client.common.GwtContext;
import han.bifang.gwt.client.common.entity.HttpBinding;
import han.bifang.gwt.client.common.entity.JmsBindingWrapper;
import han.bifang.gwt.client.common.entity.SoapBinding;
import han.bifang.gwt.client.common.entity.WebServicesMethodWrapper;
import han.bifang.gwt.client.common.entity.WsdlWrapper;
import han.bifang.gwt.client.communicate.BifangGWTServiceAsync;
import han.bifang.gwt.client.service.ServiceMessages;

import java.util.ArrayList;

import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
import com.google.gwt.user.client.ui.HTMLTable.ColumnFormatter;

/**
 * 
 * @Author Kent
 */
public class VersionConfigContent extends Content {

	private BifangGWTServiceAsync service = null;

	private GwtContext context = null;

	private ServiceMessages cons;

	private VerticalPanel panel = null;


	public VersionConfigContent(ServiceMessages cons,
			BifangGWTServiceAsync service, GwtContext context,Object b, ArrayList qos) {
		this.cons = cons;
		this.context = context;
		this.service = service;
		
		panel = new VerticalPanel();
		panel.setSpacing(5);
		panel.setWidth("100%");

		HTML h = new HTML(cons.versionConfig());
		panel.add(h);
		String flag = null;
		if (b instanceof WsdlWrapper) {
			flag = "webservices";
		} else if (b instanceof JmsBindingWrapper) {
			flag = "jms";
		} else if (b instanceof HttpBinding) {
			flag = "http";
		}else if (b instanceof SoapBinding) {
			flag = "soap";
		}
		
		ShowVersionQosPanel vp = new ShowVersionQosPanel(cons, flag,qos);
		panel.add(vp);

		if (flag.equals("webservices")) {
			WsdlWrapper w = (WsdlWrapper) b;
			ArrayList l = w.getMethods();
			FlexTable table = new FlexTable();
			table.setWidth("100%");
			table.setCellPadding(1);
			table.setCellSpacing(1);
			table.setBorderWidth(1);

			ColumnFormatter cf = table.getColumnFormatter();
			cf.setWidth(0, "20%");
			cf.setWidth(1, "80%");

			CellFormatter ff = table.getCellFormatter();
			ff.setStyleName(0, 0, "tablecol");
			ff.setStyleName(0, 1, "tablecol");

			table.setHTML(0, 0, cons.methodName());
			table.setHTML(0, 1, cons.methodDetail());
		
			for (int i = 0, j = l.size(); i < j; i++) {
				WebServicesMethodWrapper wm = (WebServicesMethodWrapper) l
						.get(i);
				table.setHTML(i + 1, 0, wm.getMethod().getMethodName());
				ShowMethodQosPanel mm = new ShowMethodQosPanel(cons,wm.getQos());
				table.setWidget(i + 1, 1, mm);
				
			}

			panel.add(table);

		}

		
		// panel.add(b);
		initWidget(panel);

	}

	public void onLoad() {
		

		

	}

}
